package control;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.scene.control.ComboBox;

// 组合框(下拉框,ChoiceBox相似但没有组合框好)
public class ComboBoxDemo extends Application {
	private Pane root = new Pane();
	private ComboBox<String> cb;
	
	public static void main(String[] args) {
		Application.launch(args);
	}
	
	@Override
	public void start(Stage stage) {
		
		cb = new ComboBox<>();      	// 条目为字符串类型
		cb.getItems().addAll("1", "2", "3", "4");    // 添加条目内容
		cb.setVisibleRowCount(3);                    // 最多同时展现的条目数
		cb.setPromptText("what is your favourite number");
		cb.setStyle("-fx-background-color: orange");
		cb.setPrefSize(250, 10); 
//		cb.setValue("2");                            // 当前选中的条目
//		cb.setEditable(true);     					 // 设置可编辑，可输入选项没有的内容
//		cb.setPlaceholder(new Button("我是占位的"));		设置占位符，当没有条目显示时显示	
		root.getChildren().add(cb);      
		
		Scene scene = new Scene(root, 300, 300);
		stage.setScene(scene);
		stage.setTitle("组合框");
		stage.show();
		
		// 选择选项监听
		cb.valueProperty().addListener(e -> System.out.println(cb.getValue()));		// 无选择时两者都返回null
//		cb.getSelectionModel().selectedItemProperty().addListener(e -> {
//			System.out.println(cb.getSelectionModel().getSelectedItem());
//		});
	}
}


